package image

import (
	// "github.com/otiai10/gosseract/v2"
	"fmt"
	"log"
	_ "os"
	"os/exec"
	"syscall"
)

func ConvertImageToText(path string) string {
	// client := gosseract.NewClient()
	// defer client.Close()
	// client.SetImage(path)
	// text, _ := client.Text()
	// return text

	// 调用 tesseract 命令行工具进行文字识别
	cmd := exec.Command("tesseract", path, "stdout", "-c", "tessedit_char_whitelist=0123456789-.")
	cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}

	// 将输出结果重定向至管道
	outputPipe, err := cmd.StdoutPipe()
	if err != nil {
		log.Fatal(err)
	}

	// 启动命令执行
	err = cmd.Start()
	if err != nil {
		log.Fatal(err)
	}

	// 读取输出结果
	result := make([]byte, 0)
	buf := make([]byte, 1024)
	for {
		n, err := outputPipe.Read(buf)
		if err != nil {
			break
		}
		result = append(result, buf[:n]...)
	}

	// 等待命令执行结束
	err = cmd.Wait()
	if err != nil {
		log.Fatal(err)
	}

	// 输出识别结果
	fmt.Println("识别结果:", string(result))
	return string(result)
}
